#include "Tupla.h"
#include "ngram.h"
#include <string>
#include <cstring>
using namespace std;

class trigrama : public ngram
{
    public:
		trigrama();
        trigrama(string termino1,string termino2,string termino3);
        ~trigrama();

        static estructuraAuxiliar estructuraAsociada;
        static estructuraAuxiliar estructuraAsociadaOrdenadaPorSegundoTermino;


        static const char* RUTA_ARCHIVO_TRIGRAMAS;

        static const char* RUTA_ARCHIVO_TRIGRAMAS_REORDENADOS;

        string representacionReordenada();

        static trigrama* trigramasDeTupla(Tupla tupla);
        static void agregarTrigramasDeTupla(Tupla tupla);
        static void instertarTrigramasDeTupla(Tupla tupla);

        static void setearMaximaCantidadEnEstructurasAsociadas(int maxNGramas=0);

        static void dumpEstructurasAsociadas();
        static Tupla obtenerTuplaDeRepresentacion(string representacion);

    		private:
        static fstream archivoTrigramas;
        static fstream archivoTrigramasOrdenadaPorSegundoTermino;
};
